home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu183.dms
/
pu183.adf
/
tableofc.bas
< prev
next >
Wrap
BASIC Source File
|
1990-12-04
|
14KB
|
349 lines
100 REM TABLEOFC Program.
110 REM Documentation. Table of Contents.
120 REM Copyright (c) 1983 - 1987 by: Melvin O. Duke.
' Ported to the Amiga in March 1988 by Nathan Barber
' Adaptions for Amiga graphics (c) 1988 by Nathan Barber
130 DATA Genealogy
140 DATA User's Manual
150 DATA -7
160 DATA 1
170 INDENT = 0
180 REM Printer Definitions
190 FORM.FEED$ = CHR$(12)
200 COMPR.OFF$ = CHR$(18) : COMPR.ON$ = CHR$(15)
210 BOLD.OFF$ = CHR$(27)+"F" : BOLD.ON$ = CHR$(27)+"E"
220 EXPAND.OFF$ = CHR$(18) : EXPAND.ON$ = CHR$(14)
230 DASHES$ = "+"+STRING$(54,45)+"+"
240 TRIM.LINE$ = "(Trim-line)"
300 REM Program begins here
310 READ TITLE$, DOC.NAME$, PAGE.NO, LINE.NO
320 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
330 GOSUB 920 :REM'For trim line and heading space
340 FOR I = 1 TO 6 : LPRINT : NEXT I
350 LPRINT BOLD.ON$; :REM'Set Emphasized mode
360 LPRINT EXPAND.ON$; :REM'Set Expanded Print
370 LPRINT TAB(TAB.POS-1);TITLE$
380 LPRINT EXPAND.OFF$; :REM'Return to normal
390 LPRINT BOLD.OFF$; :REM'Return to normal
400 FOR I = 1 TO 3 : LPRINT : NEXT I
410 LPRINT BOLD.ON$; :REM'Set Emphasized mode
420 LPRINT TAB(TAB.POS+12);"ON DISPLAY"
430 LPRINT BOLD.OFF$; :REM'Return to normal
440 LPRINT : LPRINT : LPRINT
450 LPRINT TAB(TAB.POS+11);"Version 5.0"
460 FOR I = 1 TO 11 : LPRINT : NEXT I
470 LPRINT TAB(TAB.POS+10); DOC.NAME$
480 LINE.NO = LINE.NO + 27
490 :REM'
500 READ REPLY$
510 REM First, change tildes to quotes
520 FOR Q = 1 TO LEN(REPLY$)
530 IF MID$(REPLY$,Q,1)="~"THEN MID$(REPLY$,Q,1)=CHR$(34)
540 NEXT Q
550 IF LEFT$(REPLY$,1) = "." THEN GOSUB 1270: GOTO 500
560 IF LINE.NO > 44 THEN GOSUB 1030
570 REM Print the line if not a command
580 LPRINT TAB(TAB.POS);REPLY$
590 LINE.NO = LINE.NO + 1
600 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
610 GOTO 500
620 REM Data for the Copyright Page
630 DATA ".pa"
640 DATA " "
750 DATA ".vt 12"
760 DATA "Users are encouraged to copy and share"
770 DATA "the programs with others."
780 DATA ".vt 5"
790 DATA "If you are using these programs, you are"
800 DATA "expected to become a Registered User,"
810 DATA "by making a contribution to the author"
815 DATA "of the programs ($45.00 suggested)."
820 DATA ".sp"
830 DATA "Melvin O. Duke"
840 DATA "P. O. Box 20836"
850 DATA "San Jose, CA 95160"
860 DATA ".vt 4"
870 DATA "Copyright (c) 1983 through 1987, by:"
880 DATA "Melvin O. Duke."
890 DATA ".sp"
900 DATA "All rights reserved."
910 :REM'
920 REM Top of each page routine
930 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
940 LPRINT
950 LPRINT TAB(30); TRIM.LINE$
960 LPRINT DASHES$ :REM'Dashes
970 FOR I = 1 TO 6
980 LPRINT
990 NEXT I
1000 LINE.NO = LINE.NO + 6
1010 RETURN
1020 :REM'
1030 REM Bottom of each page Routine
1040 IF PAGE.NO < 1 THEN LPRINT : LPRINT : LPRINT : GOTO 1160
1050 LPRINT TAB(TAB.POS); STRING$(40,45) :REM'on line 46
1060 LPRINT TAB(TAB.POS+3); TITLE$+" ON DISPLAY. Version 5.0" :REM'on line 47
1070 IF PAGE.NO MOD 2 = 1 THEN 1110
1080 LPRINT TAB(TAB.POS);"Page";PAGE.NO;
1090 LPRINT TAB(TAB.POS+27);"User's Manual"
1100 GOTO 1160
1110 LPRINT TAB(TAB.POS); "User's Manual";
1120 IF PAGE.NO < 10 THEN DELTA = 34
1130 IF PAGE.NO > 9 THEN DELTA = 33
1140 IF PAGE.NO > 99 THEN DELTA = 32
1150 LPRINT TAB(TAB.POS+DELTA); "Page"; PAGE.NO :REM'on line 48
1160 LPRINT : LPRINT : LPRINT
1170 LPRINT DASHES$ :REM'dashes after 51
1180 LPRINT TAB(30); TRIM.LINE$
1190 LPRINT FORM.FEED$;
1200 PAGE.NO = PAGE.NO + 1
1210 LINE.NO = 1
1220 IF REPLY$ = ".eof" THEN 1240 :REM'Bypass after last page
1230 GOSUB 920 :REM'For top of next page
1240 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
1250 RETURN
1260 :REM'
1270 REM Command Processor
1280 IF LEFT$(REPLY$,3) = ".h1" THEN 1390
1290 IF LEFT$(REPLY$,3) = ".h2" THEN 1550
1300 IF LEFT$(REPLY$,3) = ".h3" THEN 1660
1310 IF LEFT$(REPLY$,3) = ".sp" THEN 1770
1320 IF LEFT$(REPLY$,4) = ".eof" THEN 1820
1330 IF LEFT$(REPLY$,3) = ".pa" THEN 1860
1340 :REM'
1350 IF LEFT$(REPLY$,3) = ".vt" THEN 1930
1360 IF LEFT$(REPLY$,3) = ".pk" THEN 2040
1370 IF LEFT$(REPLY$,3) = ".in" THEN 2170
1380 STOP
1390 REM Head 1 Processor
1400 FOR I = LINE.NO TO 44
1410 LPRINT
1420 NEXT I
1430 GOSUB 1030 :REM'Bottom of page Routine
1440 IF PAGE.NO MOD 2 = 0 THEN GOSUB 1860 :REM'For h1 on Odd pages
1450 LPRINT BOLD.ON$; :REM'Set emphasized print
1460 LPRINT EXPAND.ON$; :REM'Set expanded print
1470 IF PAGE.NO MOD 2 = 0 THEN ADJUST = -2 :ELSE ADJUST = -5
1480 LPRINT TAB(TAB.POS+ADJUST); RIGHT$(REPLY$,LEN(REPLY$)-4)
1490 LPRINT EXPAND.OFF$; :REM'Return to normal
1500 LPRINT BOLD.OFF$; :REM'Return to non-bold
1510 LINE.NO = LINE.NO+1
1520 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
1530 RETURN
1540 :REM'
1550 REM Head 2 Processor
1560 IF LINE.NO = 7 THEN 1580 :REM'skip spacing if at top of page
1570 IF LINE.NO > 43 THEN GOSUB 1860 :ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
1580 LPRINT BOLD.ON$; :REM'Set emphasized print
1590 LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
1600 LPRINT BOLD.OFF$; :REM'Return to normal
1610 LPRINT
1620 LINE.NO = LINE.NO + 2
1630 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
1640 RETURN
1650 :REM'
1660 REM Head 3 Processor
1670 IF LINE.NO = 7 THEN 1690 :REM'skip spacing if at top of page
1680 IF LINE.NO > 43 THEN GOSUB 1860 :ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
1690 LPRINT BOLD.ON$; :REM'Set emphasized print
1700 LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
1710 LPRINT BOLD.OFF$; :REM'Return to normal
1720 LPRINT
1730 LINE.NO = LINE.NO + 2
1740 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
1750 RETURN
1760 :REM'
1770 REM Single Space Processor
1780 IF LINE.NO = 7 THEN 1800
1790 IF LINE.NO > 44 THEN GOSUB 1860 :ELSE LPRINT : LINE.NO = LINE.NO + 1
1800 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
1810 RETURN
1820 REM End of File Processor
1830 GOSUB 1860 :REM'Bottom of Page
1850 GOTO 4500
1860 REM Page Eject Processor
1870 FOR I = LINE.NO TO 44
1880 LPRINT
1890 LINE.NO = LINE.NO + 1
1900 NEXT I
1910 GOSUB 1030 :REM'Bottom of Page Processing
1920 RETURN
1930 REM Vertical Tab Processor
1940 IF LINE.NO = 7 THEN 2030
1950 IF LINE.NO > 44 THEN GOSUB 1030 :REM'End of page
1960 QTY = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
1970 FOR I = 1 TO QTY
1980 LPRINT
1990 LINE.NO = LINE.NO + 1
2000 IF LINE.NO > 44 THEN I = QTY
2010 NEXT I
2020 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
2030 RETURN
2040 REM Pack Processor
2050 IF LINE.NO > 44 THEN GOSUB 1030
2060 IF TAB.POS = 8 THEN ADJUST = 4
2070 IF TAB.POS = 13 THEN ADJUST = 7
2080 TAB.POS = TAB.POS + ADJUST + INDENT
2090 WIDTH "lpt1:", 132 :REM'set condensed width
2100 LPRINT COMPR.ON$; :REM'Packed printing
2110 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-3)
2120 LPRINT COMPR.OFF$; :REM'Return to normal
2130 WIDTH "lpt1:", 80 :REM'return to normal
2140 LINE.NO = LINE.NO + 1
2150 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
2160 RETURN
2170 REM Indent Processor
2180 INDENT = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
2190 RETURN
3000 DATA ".h1 TABLE OF CONTENTS"
3010 DATA ".sp"
3020 DATA "INTRODUCTION - - - - - - - - - - - - 1"
3030 DATA " OVERVIEW - - - - - - - - - - - - - 1"
3040 DATA " CAPABILITIES - - - - - - - - - - - 1"
3050 DATA " Display the Genealogy - - - - - 2"
3060 DATA " Print Pedigree Charts (Family "
3070 DATA " Trees) - - - - - - - - - - - - 2"
3080 DATA " Print Family Group Sheets - - - 3"
3090 DATA " Produce Descendents Charts - - - 3"
3100 DATA " Format the Data Files - - - - - 3"
3110 DATA " Update the Data Files - - - - - 4"
3120 DATA " Prepare the Indexes - - - - - - 4"
3130 DATA " List the Records in the File - - 4"
3140 DATA " Printing the Contents of the"
3150 DATA " files - - - - - - - - - - - - 5"
3160 DATA " Alphabetical Lists - - - - - - - 5"
3170 DATA " Parent/Child Index List - - - - 5"
3180 DATA " BENEFITS/ADVANTAGES - - - - - - - 6"
3190 DATA " RESULTS - - - - - - - - - - - - - 6"
3200 DATA " REQUIREMENTS - - - - - - - - - - - 7"
3210 DATA " Hardware Requirements - - - - - 7"
3220 DATA " Software Requirements - - - - - 8"
3230 DATA ".sp"
3240 DATA "GENERAL INFORMATION - - - - - - - - 9"
3250 DATA " DATA ACCESS REQUIREMENTS - - - - - 9"
3260 DATA " DESCRIPTION OF FUNCTIONS - - - - - 9"
3270 DATA " File Formatting - - - - - - - - 9"
3280 DATA " File Maintenance - - - - - - - - 9"
3290 DATA " File Indexes - - - - - - - - - - 9"
3300 DATA " Summary Lists - - - - - - - - - 10"
3310 DATA " Detailed Data - - - - - - - - - 10"
3320 DATA " Displaying the Genealogy - - - - 10"
3330 DATA " Printing Pedigree Charts - - - - 11"
3340 DATA " Printing Family Group Sheets - - 11"
3350 DATA " Producing Descendents Charts - - 11"
3360 DATA ".pa"
3370 DATA " DEFINITION OF TERMS - - - - - - - 12"
3380 DATA " Personal Information - - - - - - 12"
3390 DATA " Pedigree Information - - - - - - 12"
3400 DATA " Family Group Information - - - - 12"
3410 DATA " Descendants Information - - - - 13"
3420 DATA " Ordinance Information - - - - - 13"
3430 DATA " EXPLANATION OF GENERAL CONCEPTS - 14"
3440 DATA " Persfile - - - - - - - - - - - - 15"
3450 DATA " Marrfile - - - - - - - - - - - - 16"
3460 DATA " Pcindex - - - - - - - - - - - - 17"
3470 DATA " Mindex - - - - - - - - - - - - - 17"
3480 DATA " Ordfile - - - - - - - - - - - - 18"
3490 DATA " Relationships - - - - - - - - - 19"
3500 DATA " BEFORE YOU START - - - - - - - - - 20"
3510 DATA " List of Persons - - - - - - - - 20"
3520 DATA " List of Marriages - - - - - - - 22"
3530 DATA ".sp"
3540 DATA "USING THE PROGRAMS - - - - - - - - - 23"
3550 DATA " GETTING STARTED - - - - - - - - - 23"
3560 DATA " FIRST TIME USAGE - - - - - - - - - 25"
3570 DATA " Backing up the Diskettes - - - - 25"
3580 DATA " Preparing a new Data Diskette - 25"
3590 DATA " Copying the Verifile Data File - 26"
3600 DATA " Copying the Menu Program - - - - 27"
3610 DATA " Formatting the Data Files - - - 28"
3620 DATA " Caution - - - - - - - - - - - - 29"
3630 DATA " HOW TO OPERATE - - - - - - - - - - 30"
3640 DATA " Selecting an individual program 30"
3650 DATA " Operating the updatper program - 31"
3660 DATA " Operating the updatmar program - 33"
3670 DATA " Operating the updatord program - 35"
3680 DATA " Operating the indexpc program - 36"
3690 DATA " Operating the indexmar program - 37"
3700 DATA " Operating the display program - 38"
3710 DATA " Operating the pedigree program - 41"
3720 DATA " Operating the family program - - 42"
3730 DATA " Operating the descend program - 43"
3740 DATA " Operating the other programs - - 43"
3750 DATA ".sp"
3760 DATA " HOW TO STOP - - - - - - - - - - - 44"
3770 DATA " Stopping the update programs - - 44"
3780 DATA " Stopping the display program - - 44"
3790 DATA " Stopping the pedigree program - 44"
3800 DATA " Stopping the family program - - 45"
3810 DATA " Stopping the descend program - - 45"
3820 DATA " Stopping the other programs - - 45"
3830 DATA ".sp"
3840 DATA "REFERENCE MATERIAL - - - - - - - - - 47"
3850 DATA " SAMPLE SCREENS AND PROMPTING"
3860 DATA " MESSAGES - - - - - - - - - - - 47"
3870 DATA " Menu Logo - - - - - - - - - - - 48"
3880 DATA " Menu of Programs - - - - - - - - 49"
3890 DATA " Display Logo - - - - - - - - - - 50"
3900 DATA " Personal Information - - - - - - 52"
3910 DATA " Pedigree Information - - - - - - 53"
3920 DATA " Family Group Information - - - - 54"
3930 DATA " Ordinance Information - - - - - 55"
3940 DATA " COMMANDS USED - - - - - - - - - - 57"
3950 DATA " Basic Command - - - - - - - - - 57"
3960 DATA " Load Command - - - - - - - - - - 57"
3970 DATA " Save Command - - - - - - - - - - 57"
3980 DATA " Run Command - - - - - - - - - - 58"
3990 DATA ".sp"
4000 DATA "APPENDIX A. MESSAGES - - - - - - - 59"
4010 DATA " Start-up Messages - - - - - - - - 59"
4020 DATA ".sp"
4030 DATA "APPENDIX B. SUMMARY - - - - - - - - 61"
4040 DATA " General Programs - - - - - - - - - 61"
4050 DATA " Data Files - - - - - - - - - - - - 62"
4060 DATA " Indexes - - - - - - - - - - - - - 63"
4070 DATA " Documentation - - - - - - - - - - 63"
4080 DATA " Overview Information - - - - - - - 63"
4090 DATA ".pa"
4100 DATA "APPENDIX C. HINTS - - - - - - - - - 65"
4110 DATA " Names - - - - - - - - - - - - - - 65"
4120 DATA " Dates - - - - - - - - - - - - - - 65"
4130 DATA " Replacing Information - - - - - - 65"
4140 DATA " Removing a Record - - - - - - - - 66"
4150 DATA ".sp"
4160 DATA "APPENDIX D. MODIFICATIONS - - - - - 67"
4170 DATA " Making Changes - - - - - - - - - - 67"
4180 DATA " Color Considerations - - - - - - - 67"
4190 DATA " Color Definitions - - - - - - - - 68"
4200 DATA " Changing the Number of Persons - - 68"
4210 DATA " Extending Existing Files - - - - 69"
4220 DATA " Printing a Partial Alphabetic List 70"
4230 DATA " Changing the Number of Marriages - 70"
4240 DATA " Extending an Existing File - - - 71"
4250 DATA " Printing Partial Files - - - - - - 72"
4260 DATA " Partial Printout of Persons - - 72"
4270 DATA " Partial Printout of Marriages - 72"
4280 DATA " Repositioning the Files - - - - - 73"
4290 DATA " Removing Person and Marriage"
4300 DATA " Numbers - - - - - - - - - - - - 74"
4310 DATA " Changing the Descendents Chart - - 74"
4320 DATA " Making the Descendents Chart"
4330 DATA " Continuous - - - - - - - - - - 74"
4340 DATA " Changing the Generations Shown - 75"
4350 DATA " Family Group Binding Space - - - - 75"
4360 DATA " Removing the Ordinances File - - - 76"
4370 DATA " Changing Sex Designations - - - - 77"
4380 DATA " Utilizing Other Printers - - - - - 77"
4390 DATA " Paper Considerations - - - - - - - 78"
4400 DATA " Use of Wide Paper - - - - - - - - 79"
4410 DATA " Use of Short Paper - - - - - - - 79"
4420 DATA " Use of Single Sheets - - - - - - 79"
4430 DATA " Defining Function Keys - - - - - - 80"
4440 DATA ".pa"
4450 DATA "APPENDIX E. TERMS & CONDITIONS - - 81"
4460 DATA " Terms - - - - - - - - - - - - - - 81"
4470 DATA " Conditions - - - - - - - - - - - - 82"
4480 DATA " Disclaimer - - - - - - - - - - - - 82"
4490 DATA ".eof"
4500 END